function list = write_wpt_csv(n, filename)
%WRITE_WPT_CSV  生成 wpt_###_* 序列并写入 CSV（单列表格，无表头）
%
% 用法：
%   write_wpt_csv(6);                      % 写到 wpt_list.csv
%   write_wpt_csv(6, 'my_waypoints.csv');  % 自定义文件名
%   L = write_wpt_csv(6);                  % 同时返回单列 cell 数组
%
% 说明：
%   - 索引使用 3 位零填充（001, 002, ...）
%   - 字段顺序：idt, lon, lat, alt_lmt, alt_dsc, spd_lmt, spd_dsc, ovr_fly

  % 参数校验
  validateattributes(n, {'numeric'}, {'scalar','integer','>=',1}, mfilename, 'n', 1);
  if nargin < 2 || isempty(filename)
      filename = 'wpt_list.csv';
  end

  % 字段定义（按题目指定顺序）
  fields = {'idt','lon','lat','alt_lmt','alt_dsc','spd_lmt','spd_dsc','ovr_fly'};
  numFields = numel(fields);

  % 预分配并生成列表
  list = cell(n * numFields, 1);
  k = 1;
  for i = 1:n
      for f = 1:numFields
          list{k} = sprintf('wpt_%03d_%s', i, fields{f});
          k = k + 1;
      end
  end

  % 写出 CSV（单列、无表头）
  try
      % R2019a+ 推荐
      writecell(list, filename);
  catch
      % 兼容老版本（用表写且不写变量名）
      T = cell2table(list);
      writetable(T, filename, 'WriteVariableNames', false);
  end

  fprintf('✅ 已写出 %d 行到 "%s"\n', numel(list), filename);
end
